/* 
 * File:   Doenca.cpp
 * Author: thiagojesus
 * 
 * Created on May 23, 2012, 8:41 AM
 */

#include "Doenca.h"
#include <fstream>
#include <iostream>
#include "Lista.cpp"

Doenca::Doenca(std::string _descricao, std::string _sintoma, std::string _conseq) {
    this->descricao = _descricao;
    this->sintoma = _sintoma;
    this->conseq = _conseq;
}

Doenca::Doenca(const Doenca& orig) {
    descricao = orig.descricao;
    sintoma = orig.sintoma;
    conseq = orig.conseq;
}

Doenca::~Doenca() {
    
}

Doenca::Doenca(){
    
}

Doenca* Doenca::pesquisar(Listadoe* p_l, std::string n){
    Doenca *aux;
    aux = *p_l;
    while(aux != NULL){
        if(aux->descricao==n){
            return aux;
        }else{
            aux = aux->prox;
        }
    }
    return NULL;
}

void Doenca::imprimirListadoe(Listadoe* d){
    Doenca *aux;
	aux = *d;
	while (aux != NULL){
            std::cout<<"\tDescricao: "<<aux->descricao<<"\n\t"<<"Sintoma: "<<aux->sintoma<<"\n\t"<<"Consequencia:"<<aux->conseq<<"\n";
            
		aux = aux->prox;
	}
}

void Doenca::salvar(Listadoe* p, int ndoe){
    std::fstream myfile;
    Doenca *aux;
    int i;
    aux = *p;
    myfile.open("doenca.bin",std::ios::out|std::ios::app|std::ios::binary);
    if(!myfile){
        std::cout<<"ERRO!";
    }else{
        for(i=0;i<ndoe;i++){
            myfile<<aux->descricao<<"\n"<<aux->sintoma<<"\n"<<aux->conseq<<"\n";
            aux = aux->prox;
        }
        std::cout<<"arquivo criado com sucesso\n";
        myfile.close();
  
    }
}

long Doenca::carregar(Listadoe* p, int ndoe, long parou){
    std::fstream myfile;
    int i=0;
    long esta;
    myfile.open("doenca.bin",std::ios::in|std::ios::binary);
    if(!myfile){
        std::cout<<"ERRO!";
    }else{
        myfile.seekg(parou);
        for(i =0; i<ndoe;i++){
            Doenca *aux = new Doenca();
            if(i==0){
             // getline(myfile,aux->descricao);  
            }
            
            getline(myfile,aux->descricao);
            getline(myfile,aux->sintoma);
            getline(myfile,aux->conseq);
            //myfile>>aux->descricao>>aux->sintoma>>aux->conseq;
            cadastrar(p,aux);
            }
            
        esta = myfile.tellg();
        myfile.close();
        return esta;
}
}
